# Sofia Alexandra Marques Silva

## Exerccios  de Construo de Funes


### Exerccio Programar 1.: QUE FRIO!

help.start() #para verificar nomes de funes
Celsius<-function(x,round=TRUE)			# x  um vector numrico
	{
		if (round==TRUE)
		{
		resultado <- round ( 5/9*(x-32),0)	# vou considerar que usualmente no so necessrias casas dcimais
		}
	   	else
		{
		resultado <-  5/9*(x-32)
		}
		return(resultado)
            			}

# verificando:
Celsius(c(100,200))
Celsius(c(100,200),round=FALSE)
5/9*(100-32)
5/9*(200-32)


### Exerccio Programar 2.: Anlise exploratria simultnea de duas variveis


explore.both <- function(x,y,nomes) 	## vectores numericos x e y e um vector de caracteres com os nomes das variveis				
	{
	dados <- list(x,y)
	names(dados)=nomes
	x11() 
	par(mfrow = c(2,2),cex=0.7,bty="l")				
	multhist(dados,main=paste("Histograma de",names(dados[1]),"e",names(dados[2])),xlab=NULL,ylab="Frequncia",col=c("green","red"),xpd=FALSE)
	boxplot(x,y,main="Grfico de Caixa",xlab=NULL)
	mtext(names(dados[1]),side=1,line=0.5,at=1,cex=0.7)
	mtext(names(dados[2]),side=1,line=0.5,at=2,cex=0.7)
	plot (y~x,xlab=names(dados[1]),ylab=names(dados[2]),main=paste(names(dados[2]),"em funo de", names(dados[1])))
	rl<-lm(y~x)
	abline(rl)
	qqnorm(x, main=paste("Teste de Neutralidade para",names(dados[1]),"e",names(dados[2])),xlab="Quantis Tericos",ylab="Quantis Amostrados",col="green")
	qqline(x, col="green")
	par(new=TRUE)
	qqnorm(y, xlab=" ",ylab=" ",main=" ", col="red",axes=FALSE)
	qqline(y, col="red")
	par(mfrow=c(1,1))
	resultado1<-summary(x)
	resultado2<-summary(y)
	resultado3<-coef(rl)
	resultado<-list(resultado1,resultado2,resultado3)
	names(resultado)=c(names(dados[1]),names(dados[2]),"coeficientes")
	{return(resultado)
	}
	}

#verificando a funo utilizando os dados da mandibula de chacal
#carregar pacote plotrix 
debug(explore.both)
macho=c(120,107,110,116,114, 111, 113,117,114,112)
femea=c(110,111,107,108,110,105,107,106,111,111)
nome=c("Macho","Femea")
explore.both(macho,femea,nome)


undebug(explore.both)

#no consegui alterar o eixo dos x do histograma!


### Programar 3: ndices de Diversidade de Espcies
#sendo	ndice de Shannon: H=-?pilnpi
#		ndice de Simpson: D=?pi2

diversas<-function(x,indice="H") 			## x  uma matriz como indicado na pg. de exercicios
								## indice=H, por default vai ser calculado o indice de diversidade de Shannon,
								## indice=D ser calculado o indice de Simpson
	{
	soma<-apply(x,2,sum,na.rm=TRUE)
	prop=t(x)/soma
	prop[prop==0]<-NA ## pq log(0)=inf
	prop.2=prop^2
	l.prop=prop*log(prop)
	if (indice=="H")
	{
	resultado<-(-1)*apply(l.prop,1,sum,na.rm=TRUE)
	}
	if (indice=="D")
	{
	resultado<-apply(prop.2,1,sum,na.rm=TRUE)
	}
	return(resultado)
	}

#verificando com o arquivo "Conjunto de Dados: Mamferos na Great Basin (EUA)":
mammals<-read.csv("gbmam93.csv", header=TRUE, as.is=TRUE,sep=",")
head(mammals)
debug(diversas)
diversas(mammals)
diversas(mammals, indice="D")
undebug(diversas)


##### FIM #####